package com.zaimokuza.cn.entity;

import com.github.pagehelper.Page;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;

import java.util.List;

/**
 * 分页结果对象
 *
 * @param <T> 对象类型
 * @author zaimokuza
 */
@ApiModel("分页结果对象")
@Data
@AllArgsConstructor
public class PageResult<T> {

    @ApiModelProperty("当前页数")
    private Integer page;

    @ApiModelProperty("每页数据条数")
    private Integer size;

    @ApiModelProperty("总条数")
    private Long count;

    @ApiModelProperty("对象集合")
    private List<T> list;

    /**
     * 从PageHelper分页对象中获取必要信息并生成对象
     *
     * @param page PageHelper的分页对象
     * @param <T>  对象泛型
     * @return 请求返回的分页对象
     */
    public static <T> PageResult<T> from(Page<T> page) {
        return new PageResult<T>(page.getPageNum(), page.getPageSize(), page.getTotal(), page.getResult());
    }

}
